home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-10-12 | 10.1 KB | 296 lines | [TEXT/PJMM] |
- unit AEObjects;
-
- { Pascal Interface to the Macintosh Libraries }
-
- { Copyright © Apple Computer Inc. }
- { All Rights Reserved }
-
- { Adapted for use with THINK Pascal 4.0.x by Marco Piovanelli }
-
- interface
- uses
- Types, AppleEvents;
-
- const
-
- {*** OSL ERROR CODES *** (!!! transplanted from Errors.p !!!) }
- errAEImpossibleRange = -1720; { A range like 3rd to 2nd, or 1st to all. }
- errAEWrongNumberArgs = -1721; { Logical op kAENOT used with other than 1 term }
- errAEAccessorNotFound = -1723; { Accessor proc matching wantClass and containerType or wildcards not found }
- errAENoSuchLogical = -1725; { Something other than AND, OR, or NOT }
- errAEBadTestKey = -1726; { Test is neither typeLogicalDescriptor nor typeCompDescriptor }
- errAENotAnObjSpec = -1727; { Param to AEResolve not of type 'obj ' }
- errAENoSuchObject = -1728; { e.g.,: specifier asked for the 3rd, but there are only 2. Basically, this indicates a run-time resolution error. }
- errAENegativeCount = -1729; { CountProc returned negative value }
- errAEEmptyListContainer = -1730; { Attempt to pass empty list as container to accessor }
-
- { *** LOGICALS *** }
- kAEAND = 'AND ';
- kAEOR = 'OR ';
- kAENOT = 'NOT ';
-
- {*** ABSOLUTE ORDINAL CONSTANTS ***}
- kAEFirst = 'firs';
- kAELast = 'last';
- kAEMiddle = 'midd';
- kAEAny = 'any ';
- kAEAll = 'all ';
-
- {*** RELATIVE ORDINAL CONSTANTS ***}
- kAENext = 'next';
- kAEPrevious = 'prev';
-
- {*** KEYWORD CONSTANT ***}
- keyAECompOperator = 'relo';
- keyAELogicalTerms = 'term';
- keyAELogicalOperator = 'logc';
- keyAEObject1 = 'obj1';
- keyAEObject2 = 'obj2';
-
- { ... for Keywords for getting fields out of object specifier records. }
- keyAEDesiredClass = 'want';
- keyAEContainer = 'from';
- keyAEKeyForm = 'form';
- keyAEKeyData = 'seld';
-
- { ... for Keywords for getting fields out of Range specifier records. }
- keyAERangeStart = 'star';
- keyAERangeStop = 'stop';
-
- { ... special handler selectors for OSL Callbacks. }
- keyDisposeTokenProc = 'xtok';
- keyAECompareProc = 'cmpr';
- keyAECountProc = 'cont';
- keyAEMarkTokenProc = 'mkid';
- keyAEMarkProc = 'mark';
- keyAEAdjustMarksProc = 'adjm';
- keyAEGetErrDescProc = 'indc';
-
- {*** VALUE and TYPE CONSTANTS ***}
- { ... possible values for the keyAEKeyForm field of an object specifier. }
- formAbsolutePosition = 'indx';
- formRelativePosition = 'rele';
- formTest = 'test';
- formRange = 'rang';
- formPropertyID = 'prop';
- formName = 'name';
- { ... relevant types (some of these are often paired with forms above). }
- typeObjectSpecifier = 'obj ';
- typeObjectBeingExamined = 'exmn';
- typeCurrentContainer = 'ccnt';
- typeToken = 'toke';
- typeRelativeDescriptor = 'rel ';
- typeAbsoluteOrdinal = 'abso';
- typeIndexDescriptor = 'inde';
- typeRangeDescriptor = 'rang';
- typeLogicalDescriptor = 'logi';
- typeCompDescriptor = 'cmpd';
-
- { Possible values for flags parameter to AEResolve. They're additive }
- kAEIDoMinimum = $0000;
- kAEIDoWhose = $0001;
- kAEIDoMarking = $0004;
-
- {*** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION }
- typeWhoseDescriptor = 'whos';
- formWhose = 'whos';
- typeWhoseRange = 'wrng';
- keyAEWhoseRangeStart = 'wstr';
- keyAEWhoseRangeStop = 'wstp';
- keyAEIndex = 'kidx';
- keyAETest = 'ktst';
-
- { used for rewriting tokens in place of 'ccnt' descriptors}
- { This record is only of interest to those who, when they...}
- { ...get ranges as key data in their accessor procs, choose}
- { ...to resolve them manually rather than call AEResolve again.}
-
- type
- ccntTokenRecord = record
- tokenClass: DescType;
- token: AEDesc;
- end;
- ccntTokenRecPtr = ^ccntTokenRecord;
- ccntTokenRecHandle = ^ccntTokenRecPtr;
-
- DescPtr = ^AEDesc;
- DescHandle = ^DescPtr;
-
- { typedefs providing type checking for procedure pointers }
- OSLAccessorProcPtr = ProcPtr; { FUNCTION OSLAccessor(desiredClass: DescType; (CONST)VAR container: AEDesc; containerClass: DescType; form: DescType; (CONST)VAR selectionData: AEDesc; VAR value: AEDesc; accessorRefcon: LONGINT): OSErr; }
- OSLCompareProcPtr = ProcPtr; { FUNCTION OSLCompare(oper: DescType; (CONST)VAR obj1: AEDesc; (CONST)VAR obj2: AEDesc; VAR result: BOOLEAN): OSErr; }
- OSLCountProcPtr = ProcPtr; { FUNCTION OSLCount(desiredType: DescType; containerClass: DescType; (CONST)VAR container: AEDesc; VAR result: LONGINT): OSErr; }
- OSLDisposeTokenProcPtr = ProcPtr; { FUNCTION OSLDisposeToken(VAR unneededToken: AEDesc): OSErr; }
- OSLGetMarkTokenProcPtr = ProcPtr; { FUNCTION OSLGetMarkToken((CONST)VAR dContainerToken: AEDesc; containerClass: DescType; VAR result: AEDesc): OSErr; }
- OSLGetErrDescProcPtr = ProcPtr; { FUNCTION OSLGetErrDesc(VAR appDescPtr: DescPtr): OSErr; }
- OSLMarkProcPtr = ProcPtr; { FUNCTION OSLMark((CONST)VAR dToken: AEDesc; (CONST)VAR markToken: AEDesc; index: LONGINT): OSErr; }
- OSLAdjustMarksProcPtr = ProcPtr; { FUNCTION OSLAdjustMarks(newStart: LONGINT; newStop: LONGINT; (CONST)VAR markToken: AEDesc): OSErr; }
- OSLAccessorUPP = UniversalProcPtr;
- OSLCompareUPP = UniversalProcPtr;
- OSLCountUPP = UniversalProcPtr;
- OSLDisposeTokenUPP = UniversalProcPtr;
- OSLGetMarkTokenUPP = UniversalProcPtr;
- OSLGetErrDescUPP = UniversalProcPtr;
- OSLMarkUPP = UniversalProcPtr;
- OSLAdjustMarksUPP = UniversalProcPtr;
-
- const
- uppOSLAccessorProcInfo = $000FFFE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
- uppOSLCompareProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
- uppOSLCountProcInfo = $00003FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; }
- uppOSLDisposeTokenProcInfo = $000000E0; { FUNCTION (4 byte param): 2 byte result; }
- uppOSLGetMarkTokenProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
- uppOSLGetErrDescProcInfo = $000000E0; { FUNCTION (4 byte param): 2 byte result; }
- uppOSLMarkProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
- uppOSLAdjustMarksProcInfo = $00000FE0; { FUNCTION (4 byte param, 4 byte param, 4 byte param): 2 byte result; }
-
- function NewOSLAccessorProc (userRoutine: OSLAccessorProcPtr): OSLAccessorUPP;
- inline
- $2E9F;
-
- function NewOSLCompareProc (userRoutine: OSLCompareProcPtr): OSLCompareUPP;
- inline
- $2E9F;
-
- function NewOSLCountProc (userRoutine: OSLCountProcPtr): OSLCountUPP;
- inline
- $2E9F;
-
- function NewOSLDisposeTokenProc (userRoutine: OSLDisposeTokenProcPtr): OSLDisposeTokenUPP;
- inline
- $2E9F;
-
- function NewOSLGetMarkTokenProc (userRoutine: OSLGetMarkTokenProcPtr): OSLGetMarkTokenUPP;
- inline
- $2E9F;
-
- function NewOSLGetErrDescProc (userRoutine: OSLGetErrDescProcPtr): OSLGetErrDescUPP;
- inline
- $2E9F;
-
- function NewOSLMarkProc (userRoutine: OSLMarkProcPtr): OSLMarkUPP;
- inline
- $2E9F;
-
- function NewOSLAdjustMarksProc (userRoutine: OSLAdjustMarksProcPtr): OSLAdjustMarksUPP;
- inline
- $2E9F;
-
- function CallOSLAccessorProc (desiredClass: DescType; {CONST}
- var container: AEDesc;
- containerClass: DescType;
- form: DescType; {CONST}
- var selectionData: AEDesc;
- var value: AEDesc;
- accessorRefcon: LONGINT;
- userRoutine: OSLAccessorUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLCompareProc (oper: DescType; {CONST}
- var obj1: AEDesc; {CONST}
- var obj2: AEDesc;
- var result: BOOLEAN;
- userRoutine: OSLCompareUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLCountProc (desiredType: DescType;
- containerClass: DescType; {CONST}
- var container: AEDesc;
- var result: LONGINT;
- userRoutine: OSLCountUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLDisposeTokenProc (var unneededToken: AEDesc;
- userRoutine: OSLDisposeTokenUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLGetMarkTokenProc ({CONST}
- var dContainerToken: AEDesc;
- containerClass: DescType;
- var result: AEDesc;
- userRoutine: OSLGetMarkTokenUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLGetErrDescProc (var appDescPtr: DescPtr;
- userRoutine: OSLGetErrDescUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLMarkProc ({CONST}
- var dToken: AEDesc; {CONST}
- var markToken: AEDesc;
- index: LONGINT;
- userRoutine: OSLMarkUPP): OSErr;
- inline
- $205F, $4E90;
-
- function CallOSLAdjustMarksProc (newStart: LONGINT;
- newStop: LONGINT; {CONST}
- var markToken: AEDesc;
- userRoutine: OSLAdjustMarksUPP): OSErr;
- inline
- $205F, $4E90;
-
- function AEObjectInit: OSErr;
- { Not done by inline, but by direct linking into code. It sets up the pack}
- { such that further calls can be via inline }
- function AESetObjectCallbacks (myCompareProc: OSLCompareUPP;
- myCountProc: OSLCountUPP;
- myDisposeTokenProc: OSLDisposeTokenUPP;
- myGetMarkTokenProc: OSLGetMarkTokenUPP;
- myMarkProc: OSLMarkUPP;
- myAdjustMarksProc: OSLAdjustMarksUPP;
- myGetErrDescProcPtr: OSLGetErrDescUPP): OSErr;
- inline
- $303C, $0E35, $A816;
-
- function AEResolve ({CONST}
- var objectSpecifier: AEDesc;
- callbackFlags: INTEGER;
- var theToken: AEDesc): OSErr;
- inline
- $303C, $0536, $A816;
-
- function AEInstallObjectAccessor (desiredClass: DescType;
- containerType: DescType;
- theAccessor: OSLAccessorUPP;
- accessorRefcon: LONGINT;
- isSysHandler: BOOLEAN): OSErr;
- inline
- $303C, $0937, $A816;
-
- function AERemoveObjectAccessor (desiredClass: DescType;
- containerType: DescType;
- theAccessor: OSLAccessorUPP;
- isSysHandler: BOOLEAN): OSErr;
- inline
- $303C, $0738, $A816;
-
- function AEGetObjectAccessor (desiredClass: DescType;
- containerType: DescType;
- var accessor: OSLAccessorUPP;
- var accessorRefcon: LONGINT;
- isSysHandler: BOOLEAN): OSErr;
- inline
- $303C, $0939, $A816;
-
- function AEDisposeToken (var theToken: AEDesc): OSErr;
- inline
- $303C, $023A, $A816;
-
- function AECallObjectAccessor (desiredClass: DescType; {CONST}
- var containerToken: AEDesc;
- containerClass: DescType;
- keyForm: DescType; {CONST}
- var keyData: AEDesc;
- var token: AEDesc): OSErr;
- inline
- $303C, $0C3B, $A816;
-
- implementation
- end.